#-*- coding:utf-8 -*-
'''
Created on 13.02.2010

@author: hu1salh1
'''
import pickle
import socket
class Connect_PAUK(object):
    '''
    Класс для передачи объектов между сервером и клиентом по сети
    '''
    def __init__(self):
        try:
            host,port=open("./serversock.cfg").read().split(',')
        except ValueError,x:
            print "Неверный формат подключения к БД",x
        self.HOST=str(host)
        self.PORT=int(port)
        
    def send_to_server(self,obj):
        '''
        Client connect
        '''
        paker=pickle.dumps(obj.result)
        sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.connect((self.HOST,self.PORT)) #Четко определен формат сокета из файла 
        sock.send(paker)
        sock.close()
    def serve_clients(self):
        '''
        Server connect
        '''
        srv=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        srv.bind((self.HOST,self.PORT))   #Четко определен формат сокета из файла
        print "Listen port %s"% self.PORT
        srv.listen(5)
        while 1:
            try:
                sock, addr = srv.accept()
                pal=""
                tmp=sock.recv(1024)
                while len(tmp)==1024:
                    pal+=tmp
                    tmp=sock.recv(1024)
                pal+=tmp
                if not pal:
                    break
                pikol=pickle.loads(pal)
                sock.close()
                yield pikol
            except:
                continue